Wireless communication among electronic devices has been increasing as the benefits and conveniences of wireless communication become more preferred. Many computers (laptops, desktops, smart phones, handheld devices, etc.) are equipped with wireless capability. Many computers are also equipped with hardware expansibility, such as Bluetooth™ interfaces and Universal Serial Bus (USB) interfaces usable to connect peripherals and other hardware devices with the computer.
In a computer having plug-and-play (“PnP”) capabilities, a host interfaces to a PnP software driver that signals to the operating system when devices are attached and detached from the computer, signals the identity of the type of device and possibly the particular instance of that type of device and handles the loading and unloading of device drivers accordingly. Using this PnP functionality, a user can simply plug in a device, known to the computer or previously unknown to the computer, and the PnP layer will load the appropriate drivers (or ask for them) so that the operating system services can access the installed device.
As used herein, “dongle” refers to a device commonly used to add wireless connectivity to a personal computer or other computer embedded (CE) device, or additional functionality provided elsewhere. A CE device can be any kind of electronic appliance that has embedded computer technology. Examples of CE devices include, but are not limited to, personal computers, notebooks, netbooks, set top boxes, home entertainment systems, TVs, game consoles, music players, media servers, cellular phones and/or smart phones. A typical dongle might have a USB plug, range in size from about thumbnail size to thumb size, and have an internal or external antenna for wireless communication. Typically, upon being plugged into a USB socket of a computer, keyboard, set-top box or other CE device that has a USB socket, the dongle connects to the USB bus of the CE device. This connection is then detected by a USB host of the CE device, which determines the device instance (which particular device that is) and/or device type, and may signal for loading of appropriate drivers for that device type. When the dongle is plugged into a CE device, it can provide a wireless transceiver function. Dongles might provide connectivity for wireless peripherals such as wireless mice, keyboards, audio headphones or audio headsets, or the like. In the example of a wireless mouse, when the dongle is plugged in and the wireless mouse turned on, the mouse communicates through the dongle and is recognized by the computer. The operating system loads the necessary software to allow the mouse to move the screen cursor and perform other mouse actions. Specifically, the wireless mouse detects user movements and button selections and conveys input signals to the dongle corresponding to those user actions. The dongle conveys the inputs to the USB bus and the USB functionality of the CE device moves that data within the CE device to be available to applications and other elements of the CE device.
In general, dongles can be used for many interfaces wherein attaching a dongle results in the dongle connecting to the bus driver and triggering the computer's operating system to assume that a new device is plugged in and in turn triggers the operating system to run some “connection processing” routine, such as Microsoft® Windows™ operating system PnP routine, or a signal rerouting. In some operating systems, such as Apple's MAC OS X™, attaching a dongle might change some settings so that a new device is mounted.
The approach of signaling when the device is attached and detached makes sense to users, since there is a physical act that precedes actions taken by the operating system, such as the operating system presenting a message “New storage media found” and searching for content following the user inserting a thumb drive having content thereon.
In the case where the dongle provides wireless connectivity to devices, the dongle may act as a network adapter or it may represent itself to the USB host as the actual wireless device that can connect to it. If the dongle is a network adapter, then the insertion of the dongle is detected by the PnP subsystem and the driver for a network adapter is loaded. When a Bluetooth™ device connects to the dongle, then this is signaled as a separate device and the appropriate driver for the Bluetooth™ device is loaded. However, if the dongle is intimately tied to the wireless device that can connect to it, then the insertion of the dongle typically causes the driver for that specific wireless device to be loaded. This behavior is often times desirable as wireless connections may fade in and out without interrupting a user's task (so long as the fade is not too long), and it could be disruptive to alert the user each time there is a change of state. This is not an issue with wired devices
In general, where a device connects wirelessly to peripherals or other devices over short links often referred to as forming a “personal area network” or “PAN,” the device may use an external interface unit that is plugged into or onto the device. For example, where the device is a laptop, the circuitry might be provided by a USB dongle that attaches to a USB port of the laptop. The USB dongle contains the radio circuitry needed to communicate wirelessly over the short wireless links. The Bluetooth™ interface is one such standard interface. The Ozmo Devices interface is another such interface.
In some cases, it might be desirable to reduce the amount of hardware in use and, in the above scenarios, the lack of a physical dongle provides undesirable results, such as the inability to tie operation of the dongle with the insertion of the dongle and to assume constant connections when the dongle is inserted.